package com.hanamaki.method;

public class Demo05 {
    // 阶乘!
    // 5! = 5*4*3*2*1;
    // 5！= 5*4!
    // 4! = 4*3!

    public static void main(String[] args) {
        // 递归  深度 不能太深
//        test();

        System.out.println(f(20));
        System.out.println(sum(100));

    }


    /**
     * 栈溢出
     */
    public static void test() {
        // 自己调用自己
//        递归
            // 1. 递归头
            // 2. 递归体
        test();
    }

    // 阶乘!
    // 5! = 5*4*3*2*1;
    // 5！= 5*4!
    // 4! = 4*3!
    public static int f(int num) {
        if (num == 1) {
            return 1;
        } else {
            return num * f(num - 1);
        }
    }

    /**
     * 100 +  -----   1
     */
    public static int sum(int num) {
        if (num == 0) {
            return 0;
        } else {
            return num + sum(num - 1);
        }
    }

}
